package com.registration;

import java.io.IOException;
import java.io.PrintWriter;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.Statement;

import javax.servlet.ServletConfig;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;

import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 * Servlet implementation class EmployeeRegistration
 */
public class EmployeeRegistration extends HttpServlet {
	private static final long serialVersionUID = 1L;
	String driver;
	String url;
	String dbuser;
	String dbpassword;
	
	String name;
	String password;
	String email;
	String country;
	
		
    /**
     * Default constructor. 
     */
    public EmployeeRegistration() {
        // TODO Auto-generated constructor stub
    }

	/**
	 * @see Servlet#init(ServletConfig)
	 */
	public void init(ServletConfig config) throws ServletException {
		System.out.println("----Init()------");
		 ServletContext context=config.getServletContext();
	        driver=context.getInitParameter("driver");
	    	url=context.getInitParameter("url");
	    	dbuser=context.getInitParameter("dbuserid");
	    	dbpassword="";
	    	System.out.println("Driver: "+driver);
	    	System.out.println("URL: "+url);
	    	System.out.println("DBuser: "+dbuser);
	    	System.out.println("DBpassword: "+dbpassword);
	}

	
	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		System.out.println("reach in doGet method");
		response.getWriter().append("Served at: ").append(request.getContextPath());
		response.setContentType("text/html");
		System.out.println("reach in doGet method");
		PrintWriter out=response.getWriter();
		//String name = request.getParameter("name");
		//String email = request.getParameter("email");
		//String password = request.getParameter("password");
		//String country = request.getParameter("country");
		
		Connection con = null;
		Statement stmt=null;
		ResultSet rs=null;
		
		try{
			//loading driver
			Class.forName("com.mysql.jdbc.Driver");
			System.out.println("1. Driver Loaded");
		}catch(ClassNotFoundException ex){
			System.out.println("Error message:"+ex.getMessage());
		}
		try{
			//Establishing connection
			con=DriverManager.getConnection(url,dbuser,dbpassword);
			System.out.println("2.Connection Established....");
		}catch(Exception e){
			System.out.println(e.getMessage());
		}
		try{
			//write query,create statement and execute statement
			String query="INSERT INTO mytable(Name,Password,Email,Country) VALUES (?,?,?,?)";
			System.out.println("3. Query Written...");
			//stmt=con.createStatement();
			
			PreparedStatement ps = con.prepareStatement(query);
			System.out.println("4. Statement Created");
			ps.setString(1, request.getParameter("name"));
			ps.setString(2, request.getParameter("password"));
			ps.setString(3, request.getParameter("email"));
			ps.setString(4, request.getParameter("country"));
			ps.executeUpdate();
			//ps.close();
			//con.close();
			System.out.println("5. Query Executed");
			
			System.out.println("6. Result Saved On Database...");
			out.print("<h3>Employee Data Saved Sucessfully...</h3>");
		}catch(Exception e){
			System.out.println(e.getMessage());
		}
		
	}

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		
		doGet(request, response);
	}

}
